package be.bejug.setris

/**
 * An implementation of this trait defines a Setris Game.
 * This implementation is normally linked to a {@link be.bejug.setris.SetrisGui}
 * for the GUI part.
 */
trait SetrisGame{
	/**
	 * User pressed the 'Rotate left key'
	 */
	def	rotateLeft:Unit

	/**
	 * User pressed the 'Rotate right key'
	 */
	def	rotateRight:Unit

	/**
	 * User pressed the 'Move left key'
	 */
	def	moveLeft:Unit

	/**
	 * User pressed the 'Move right key'
	 */
	def	moveRight:Unit

	/**
	 * User pressed the 'Drop block key'
	 */
	def dropBlock:Unit

	/**
	 * User started the game
	 */
	def	start:Unit

	/**
	 * User interface timer event
	 */
	def	tick(tickCount:Long):Unit
}